namespace go video
include "../user/user.thrift"

struct Video {
    1: required i64 id,  // 唯一标识
    2: required user.User author,  // 作者信息
    3: required string play_url,  // 播放地址
    4: required string cover_url,  // 封面地址
    5: required i64 favorite_count,  // 点赞数
    6: required i64 comment_count,  // 评论数
    7: required bool is_favorite,  // 点赞
    8: required string title,  // 标题
    9: required i64 share_count,  // 转发数
}

struct FeedRequest {
    1: optional i64 latest_time,  // 可选参数，限制返回视频的最新投稿时间戳，精确到秒，不填表示当前时间
    2: optional string token,  // 可选参数，登录用户设置
}

struct FeedResponse {
    1: required i32 status_code,  // 状态码，0-成功，其他值-失败
    2: optional string status_msg,  // 返回状态描述
    3: required list<Video> video_list,  // 视频列表
    4: optional i64 next_time,  // 本次返回的视频中，发布最早的时间，作为下次请求时的latest_time
}

service VideoService {
    FeedResponse Feed(1:required FeedRequest request)  // 批量获取视频信息
}